import os
import imageio.v2 as imageio  # 使用v2版本以兼容性更好

def create_gif(image_folder, output_file, duration=0.1):
    """
    根据给定的图片文件夹创建GIF动画。
    
    :param image_folder: 存放帧图片的文件夹路径
    :param output_file: 输出的GIF文件名
    :param duration: 每一帧持续的时间，默认是0.1秒
    """
    # 获取文件夹内所有支持的图片文件
    filenames = [os.path.join(image_folder, fn) for fn in os.listdir(image_folder) if fn.endswith('.png') or fn.endswith('.jpg')]
    
    # 确保文件名按数字顺序排序
    filenames.sort(key=lambda x: int(''.join(filter(str.isdigit, os.path.basename(x)))))
    
    # 创建帧列表
    frames = []
    for filename in filenames:
        frames.append(imageio.imread(filename))
        print(f"加载帧: {filename}")
    
    # 保存为GIF
    print("正在生成GIF...")
    imageio.mimsave(output_file, frames, 'GIF', duration=duration)
    print(f"✅ GIF动画已保存为: {output_file}")

# 调用函数
create_gif('images/walk', 'output.gif')